package com.aishua.fire.service;

import java.util.List;
import java.util.Map;
import com.aishua.fire.mapper.dto.AccteamList;
import com.aishua.fire.entity.ateam.AddAccountteamInfo;
import com.aishua.fire.entity.ateam.UpdAccountteamInfo;
import com.aishua.fire.entity.ateam.UpdateAccountteamInfo;
import com.aishua.fire.jpa.entity.Accountteam;
import com.aishua.fire.jpa.entity.Permteam;
import com.aishua.fire.mapper.dto.AteamPermTeamSearchDto;

public interface AccountteamService {

	/**
	 * 添加账户组信息
	 * @param roleInfo
	 */
	void add(AddAccountteamInfo roleInfo);

	/**
	 * 删除账户组信息
	 * @param accountteamId,permteamId
	 */
	void delete(String accountteamId);

	/**
	 * 修改账户组名称或描述
	 * @param updateRole
	 */
	void update(UpdateAccountteamInfo updateRole);

	/**
	 * 查询账户组详细信息
	 * @param roleId
	 * @return
	 */
	Accountteam findRoleId(String roleId);

	/**
	 * 账户组列表分页列表查询接口
	 * @param page
	 * @param size
	 * @param roleName
	 * @return
	 */
	List<AteamPermTeamSearchDto> searchList(String roleName);

	/**
	 * 通过账户id获取账户组列表
	 * @param accountId
	 * @return
	 */
	List<Accountteam> getAteamListByAccountId(String accountId);

	/**
	 * 删除测试
	 * @param ateamName
	 * @param ateamDesc
	 */
	void testDelete(String ateamName, String ateamDesc);

	/**
	 *全查Accountteam表
	 * @param RoleInfo
	 */
	List<Accountteam> getAccountteamList();
	
	//通过账户组id找到对应的账户信息
	List<AccteamList> findAccountByaccountteamId(Long accountteamId);
	
	//通过账户id找到对应的账户组信息
	List<Accountteam> findByaccountId(Long accountId);
	
	//通过账户id找到所有对应的账户组信息map
	Map<String, Object> findByAccountIdMap(Long accountId);
	
	/**
	 * 获取账户资源组下拉列表
	 */
    List<Accountteam> getAttList();
    
    /**
	 * 获取账户组id和name
	 */
    List<Accountteam> findIdAndName();
    
    /**
	 * 查询账户组表的name和id(过滤后)
	 * @param pram
	 */
	List<Accountteam> findFilterIdAndName(Long accountId);
	
	//修改用户组
	void updateAteam(UpdAccountteamInfo updAccountteamInfo);
	
	//过滤后的id和name
	List<Permteam> findIdAndNameGuoLv(String accountteamId);
}
